package com.easymin.weixin.manager;

import com.easymin.weixin.controller.v4.ResultTransport;

import java.util.Map;

public interface SimpleCarPoolManager {
  /**
   * 查询服务人员附近线路.
   *
   * @return 多条线路的(起点, 终点, 路线id, 车辆个数)
   */
  Map<String, Object> roadLines(Double lat, Double lng, String appKey);

  /**
   * 查询指定线路.
   */
  Map<String, Object> roadLine(Long roadLineId, String appKey);

  /**
   * 查询工作车.
   */
  Map<String, Object> car(Long carId, String appKey);

  /**
   * 下单(工作车).
   *
   * @param roadLineId 路线Id
   * @param bookLat 上车地纬度
   * @param bookLng 上车地经度
   * @param bookTime 上车时间
   * @param bookArea 上车地址
   * @param employId 服务人员Id
   * @param employName 服务人员姓名
   * @param employPhone 服务人员电话
   */
  Map<String, Object> book(Long roadLineId, Double bookLat, Double bookLng, Long bookTime,
      String bookArea, Long employId, String employName, String employPhone, String appKey);

  /**
   * 取消工作车订单.
   */
  Map<String, Object> cancel(Long bookId, String appKey);

  /**
   * 查询预约的工作车订单.
   */
  Map<String, Object> books(Long employId, String appKey);

  /**
   * V4工作车下单.
   */
  ResultTransport bookV4(Long roadLineId, Double bookLat, Double bookLng, Long bookTime,
      String bookArea, Long employId, String employName, String employPhone, String appKey);

  /**
   * V4查询服务人员附近线路.
   */
  ResultTransport roadLinesV4(Double lat, Double lng, String appKey);

  /**
   * V4查询指定线路.
   */
  ResultTransport roadLineV4(Long roadLineId, String appKey);

  /**
   * V4查询工作车.
   */
  ResultTransport carV4(Long carId, String appKey);

  ResultTransport booksV4(Long employId, String appKey);

  ResultTransport cancelV4(Long bookId, String appKey);

}
